Multiple Virtual Machines in a Mobile Virtualization Platform

ABSTRACT

Systems and methods are described for embodiments of a mobile virtualization platform (MVP) that may be embedded in an end user mobile device or comprise part of the firmware loaded on the device. The MVP may implement a thin layer of software embedded on the device to decouple applications and data from the underlying hardware, thus enabling the device to concurrently run multiple operating systems. Furthermore, the MVP may enable applications to run concurrently per each base band.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 17/538,642, filed Nov. 30, 2021, which is acontinuation of U.S. patent application Ser. No. 17/073,854, filed Oct.19, 2020 (now U.S. Pat. No. 11,216,264), which is a continuation of U.S.patent application Ser. No. 15/863,125, filed Jan. 5, 2018 (now U.S.Pat. No. 10,846,072), which is a continuation of U.S. patent applicationSer. No. 14/597,361, filed Jan. 15, 2015 (now U.S. Pat. No. 9,898,271),which is a continuation of U.S. patent application Ser. No. 13/248,841,filed Sep. 29, 2011 (now U.S. Pat. No. 8,966,004), each of which ishereby incorporated by reference in its entirety.

BACKGROUND

A large number of people work on the go. The evolution of wirelessdevices such as laptops, mobile phones, and other portable devicesfacilitates instantaneous access to a wireless network, such as theInternet, at virtually any location, providing users the mobility tomove around within a broad coverage area and still be connected to thenetwork. Recent years have witnessed the development of smart phones andwireless devices that carry data in addition to telephone conversations.

Existing systems, however, may be developed on a single ormulti-processor based system with multiple software modules, oftenintegrated as a one monolithic image. Improvements are desirable tosupport wireless devices and to allow such devices to improve theirprocessing power and capabilities.

SUMMARY

Hence, some aspects of the disclosure relate to methods and systems fora mobile virtualization platform providing virtual segregation and/orconcurrent execution of multiple applications on a gateway providingvoice, video, and/or data services.

For example, some aspects of the disclosure relate to a method ofreceiving data sent from a remote content provider system at a wirelessmobile device comprising multiple virtual machines. The data may be sentover a first wireless network and get processed by a first virtualmachine. Upon the occurrence of particular triggering events, however,the processing may be transferred to another virtual machine. The othervirtual machine may receive data over a second wireless network. Theseand other features are disclosed below.

The preceding presents a simplified summary in order to provide a basicunderstanding of some aspects of the disclosure. The summary is not anextensive overview of the disclosure. It is neither intended to identifykey or critical elements of the disclosure nor to delineate the scope ofthe disclosure. The summary merely presents some concepts of thedisclosure in a simplified form as a prelude to the description below.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure is illustrated by way of example and not limitedin the accompanying figures in which like reference numerals indicatesimilar elements and in which:

FIG. 1 illustrates an example information distribution network;

FIG. 2 illustrates an example hardware platform on which some of theelements described herein can be implemented;

FIG. 3 illustrate a functional block diagram of communication betweenvarious components of a mobile virtualization platform (MVP) inaccordance with one or more aspects of the disclosure;

FIG. 4 illustrates another functional block diagram of communicationbetween various components of an MVP in accordance with one or moreaspects of the disclosure;

FIG. 5 shows an illustrative functional implementation of a virtualmachine on gateway or comparable applications in accordance with one ormore aspects of the disclosure; and

FIG. 6 illustrates a flowchart of an example method in accordance withone or more aspects of the disclosure.

DETAILED DESCRIPTION

In the following description of various illustrative embodiments,reference is made to the accompanying drawings, which form a parthereof, and in which is shown, by way of illustration, variousembodiments in which aspects of the disclosure may be practiced. It isto be understood that other embodiments may be utilized, and structuraland functional modifications may be made, without departing from thescope of the present disclosure.

The disclosure describes, among other things, a mobile virtualizationplatform embedded on device hardware such that by providing dedicatedand distinct virtual machines for different applications (or a categoryof applications) on the device, numerous benefits may be achieved. Forexample, such embodiments may help to isolate development, testing anddeployment efforts per application (or category of applications).

FIG. 1 illustrates an example information distribution network 100 onwhich many of the various features described herein may be implemented.Network 100 may be any type of information distribution network, such assatellite, telephone, cellular, wireless, etc. One example may be anoptical fiber network, a coaxial cable network or a hybrid fiber/coaxdistribution network. Such networks 100 use a series of interconnectedcommunication lines 101 (e.g., coaxial cables, optical fibers, wireless,etc.) to connect multiple premises 102 (e.g., businesses, homes,consumer dwellings, etc.) to a central office or headend 103. Thecentral office 103 may transmit downstream information signals onto thelines 101, and each home 102 may have a receiver used to receive andprocess those signals.

There may be one line 101 originating from the central office 103, andit may be split a number of times to distribute the signal to varioushomes 102 in the vicinity (which may be many miles) of the centraloffice 103. The lines 101 may include components not illustrated, suchas splitters, filters, amplifiers, etc. to help convey the signalclearly, but in general each split introduces a bit of signaldegradation. Portions of the lines 101 may also be implemented withfiber-optic cable, while other portions may be implemented with coaxialcable, other lines, or wireless communication paths. By running fiberoptic cable along some portions, for example, signal degradation inthose portions may be significantly minimized, allowing a single centraloffice 103 to reach even further with its network of lines 101 thanbefore.

The central office 103 may include a termination system (TS) 104, whichmay comprise a computing device configured to manage communicationsbetween devices on the network of lines 101 and backend devices such asservers 105-107. The TS may be as specified in a standard, such as theData Over Cable Service Interface Specification (DOCSIS) standard,published by Cable Television Laboratories, Inc. (a.k.a. CableLabs), orit may be a similar or modified device instead. The TS may be configuredto place data on one or more downstream frequencies to be received bydevices at the various homes 102, and to receive upstream communicationsfrom those devices on one or more upstream frequencies. The centraloffice 103 may also include one or more network interfaces 108, whichcan permit the central office 103 to communicate with various otherexternal networks 109. These networks 109 may include, for example,networks of Internet devices, telephone networks, cellular telephonenetworks, fiber optic networks, local wireless networks (e.g., WiMAX),satellite networks, and any other desired network, and the interface 108may include the corresponding circuitry needed to communicate on thenetwork 109, and to other devices on the network such as a cellulartelephone network and its corresponding cell phones.

As noted above, the central office 103 may include a variety ofcomputing devices, such as servers 105-107 that may be configured toperform various functions. For example, the central office 103 mayinclude a push notification server 105. The push notification server 105may generate push notifications to deliver data and/or commands to thevarious homes 102 in the network (or more specifically, to the devicesin the homes 102 that are configured to detect such notifications). Thecentral office 103 may also include a content server 106. The contentserver 106 may be one or more computing devices that are configured toprovide content to users in the homes. This content may be, for example,video on demand movies, television programs, songs, text listings,applications, etc. The content server 106 may include software tovalidate user identities and entitlements, locate and retrieve requestedcontent, encrypt the content, and initiate delivery (e.g., streaming) ofthe content to the requesting user and/or device. In one example, thecontent server 106 may, in response to a command, send softwareapplication modules to a remote device (e.g., end user mobile device,gateway 111, etc.) for installation and execution on the MVP. One ormore of the servers 105-107 described herein may be optionally omittedfrom or included in the central office 103 in various examples.

The central office 103 may also include one or more application servers107. An application server 107 may be a computing device configured tooffer any desired service, and may run various languages and operatingsystems (e.g., servlets and JSP pages running on Tomcat/MySQL, OSX, BSD,Ubuntu, Redhat, HTML5, JavaScript, AJAX and COMET). For example, anapplication server may be responsible for collecting television programlistings information and generating a data download for electronicprogram guide listings. Another application server may be responsiblefor monitoring user viewing habits and collecting that information foruse in selecting advertisements. Another application server may beresponsible for formatting and inserting advertisements in a videostream being transmitted to the homes 102. Yet another applicationserver may be responsible for receiving user remote control commands,and processing them to provide an intelligent remote control experience.

An example, premises such as a home 102 a may include an interface 125.In one example, the interface 125 may comprise a modem 110, which mayinclude transmitters and receivers used to communicate on the lines 101and with the central office 103. The modem 110 may be, for example, acoaxial cable modem (for coaxial cable lines 101), a fiber interfacenode (for fiber optic lines 101), a wireless device, or any otherdesired modem device. The modem 110 may be connected to, or be a partof, a gateway interface device 111. The gateway interface device 111 maybe a computing device that communicates with the modem 110 to allow oneor more other devices in the home to communicate with the central office103 and other devices beyond the central office. The gateway 111 may bea set-top box (STB), digital video recorder (DVR), computing device,such as a server, or any other desired computing device. The gateway 111may also include (not shown) local network interfaces to providecommunication signals to devices, such as televisions 112 in homes,additional STBs 113, personal computers 114 in homes, laptop computers115, wireless devices 116 (wireless laptops and netbooks, mobile phones,mobile televisions, personal digital assistants (PDA), DECT (DigitalEnhanced Cordless Telecommunications) handsets that communicate over aDECT wireless interface, etc.), and/or any other desired devices insideor outside the home. Examples of the local network interfaces includeMultimedia Over Coax Alliance (MoCA) interfaces, Ethernet interfaces,universal serial bus (USB) interfaces, wireless interfaces (e.g., IEEE802.11), Bluetooth interfaces, and others.

Gateway 111 may communicate with various elements in a wide area networkbeing external to premises 102. Those elements can include, e.g., callmanagement servers and other conventional network elements used tocreate and maintain telephone calls and other types of voicecommunication sessions. External network 109, which may be of regionalor national scope, may include a number of sub-networks and/or links toadditional networks. For example, network 109 may include an accesssub-network that connects gateway 111 (and other gateways at otherpremises, not shown) to network 109. That access sub-network could beany of various types. Examples of access sub-network types in variousembodiments include, but are not limited to, a passive optical network(PON) access sub-network, a digital subscriber line (DSL) accesssub-network, a wide area wireless access sub-network and a hybrid fibercoaxial (HFC) access sub-network.

For example, in an HFC access sub-network, a network interface 209 mayinclude hardware for tuning to RF frequency channels, for demodulatingsignals received in those tuned channels, for outputting data fromdemodulated signals for further processing, for modulating data onto anupstream signal, and for transmitting that upstream signal to network109. In a PON access sub-network, a network interface 209 may includethe components of an optical network terminal (ONT) that performsmodulation, demodulation, transmission, and receiving operations. In awide area wireless access sub-network, a network interface 209 mayinclude a wireless transceiver that performs tuning, modulation,demodulation, transmission, and receiving operations. In a DSL accesssub-network, a network interface 209 may include a DSL modem thatperforms the modulation, demodulation, transmission, and receivingoperations. In still further embodiments, a network interface mayinclude an Ethernet or other local network interface that connectsgateway 111 to a separate cable modem, ONT, wireless transceiver, DSLmodem or other access sub-network connection point.

Moreover, an access sub-network connecting gateway 111 to network 109may utilize known media access control (MAC), transport and othercommunication protocols conventionally used with a particular type ofaccess sub-network architecture and communication technology. Network109 may include numerous access sub-networks of different types,including those listed above.

Gateway 111 may communicate with different elements in network 109 so asto obtain different types of services. For example, one or moreoperators of network 109 may provide a general-purpose data service topremises 102 that allows gateway 111 to access the public Internetand/or other public data networks. As another example, the operator ofnetwork 109 may provide various types of multicast and/or unicastcontent (e.g., movies, television programming, etc.) to premises 102through gateway 111. As a further example, an operator of network 109may provide telephony or other type of voice communication services topremises 102 through gateway 111.

In addition, a gateway 111 may include a primary/main processor 201 andmemory. The processor 201 may communicate with a network 210 over anetwork interface 209. The processor 201 may be further configured toexecute instructions so as to perform various operations as describedherein (e.g., operations of a gateway session manager), to performvarious operations in connection with MAC, transport and other protocolsused for communication with a network 109, and to control operation ofother components of gateway 111. Instructions executed by the processor201 may be hard-wired logic gates and/or may be instructions read frommemory. Memory may include volatile and non-volatile memory and caninclude any of various types of storage technology, including but notlimited to read only memory (ROM) modules 202, random access memory(RAM) modules 203, magnetic tape, magnetic discs (e.g., a fixed harddisk drive 205 or a removable floppy disk 204), optical disk (e.g., aCD-ROM disc, a CD-RW disc, a DVD disc), flash memory, and EEPROM memory.The processor 201 may be implemented with any of numerous types ofdevices, including but not limited to general purpose microprocessors,application specific integrated circuits, field programmable gatearrays, and combinations thereof. Although a single block is shown forthe processor 201, computational operations of gateway 111 may bedistributed across multiple processors located within gateway 111.Alternatively, memory and computational operations of gateway 111 may becontained within a single application specific integrated circuit (ASIC)or other component.

In other embodiments, a gateway 111 may also include other types oflocal physical interfaces for communicating with other types of enddevices. Examples of such interfaces include but are not limited to aCAT-iq (Cordless Advanced Technology—Internet and Quality) interface forcommunication with CAT-iq end devices, a DLNA (Digital Living NetworkAlliance) interface for communicating with other devices in a premises,a femtocell interface for communicating with mobile telephones and othermobile devices, etc. A power supply and/or battery backup to provideelectrical power. User input to gateway 111 may be provided over one ofthe aforementioned interfaces or via a separate collection of buttons orother controls in a console.

FIG. 2 illustrates general hardware elements that may be used toimplement any of the various computing devices (e.g., devices 112-117).The computing device 200 may include one or more processors 201, whichmay execute instructions of a computer program to perform any of thefeatures described herein. The instructions may be stored in any type ofcomputer-readable medium or memory, to configure the operation of theprocessor 201. For example, instructions may be stored in a read-onlymemory (ROM) 202, random access memory (RAM) 203, removable media 204,such as a Universal Serial Bus (USB) drive, compact disk (CD) or digitalversatile disk (DVD), floppy disk drive, or any other desired electronicstorage medium. Instructions may also be stored in an attached (orinternal) hard drive 205. The computing device 200 may include one ormore output devices, such as a display 206 (or an external television),and may include one or more output device controllers 207, such as avideo processor. There may also be one or more user input devices 208,such as a remote control, keyboard, mouse, touch screen, microphone,etc. The computing device 200 may also include one or more networkinterfaces, such as input/output circuits 209 (such as one or more of anetwork card, GSM modem, CDMA modem, Bluetooth transceiver, Wi-Fi mode,or other modem type) to communicate with an external network 210. Inaddition to, or in lieu of, communicating over local area networks(i.e., via a local network interface in the gateway 111), in someembodiments in accordance with aspects of the disclosure, devices112-117 may communicate over a wide area network with central office 103without going through the gateway 111.

For example, a mobile phone 117 may communicate, using a GSM modem, withcentral office 103 without requiring a hotspot gateway, e.g., gateway111 to provide access to networks. The network interface may be a wiredinterface, wireless interface, or a combination of the two. In someembodiments, the interface 209 may include a modem (e.g., a cablemodem), and network 210 may include the communication lines 101discussed above, the external network 109, an in-home network, aprovider's wireless, coaxial, fiber, or hybrid fiber/coaxialdistribution system (e.g., a DOCSIS network), and/or any other desirednetwork. One or more of the aforementioned components/interfacesdescribed above may be optional in accordance with various aspects of aparticular embodiment.

End device 117 may comprise a smart phone that includes a transceiverused for direct communication over a wide area wireless network (e.g., a3G mobile networking and telecommunication network), an EDGE (EnhancedData rate for GSM Evolution) network, an EVDO (EVolution Data Optimized)network. The transceiver demodulates signals received over a wide areawireless network, modulates data, and transmits modulated data signalsin the wide area wireless network. A second transceiver may beconfigured to allow device 117 to communicate within a general-purposelocal wireless network. The second transceiver may demodulate signalsreceived in a local wireless network, modulate data, and/or transmitmodulated data signals in that local wireless network. Both transceiversmay also exchange data with a processor 201 that is configured toexecute instructions so as to perform various operations as describedherein and to control operation of other components of device 117. Thoseinstructions may be stored in tangible, non-transitory computer memoryas executable instructions and/or as hard wired logic within processor201. For example, the memory or another portion may store a client, suchas a SIP-based voice communication client. The client may be, e.g., aVoIP (Voice over Internet Protocol) client. The processor 201 may alsobe configured to perform one or more types of CODEC operations toconvert data to audio for output through speaker and to convert soundreceived through microphone 208 into data. Processor 201 may outputsvideo data to a display 206 and receives user input through a keypad 208and/or through touch sensitive portions of a display. Processor 201 maybe configured to provide a browser or other graphical user interface(GUI) on display 206 by which a user of device 200 may receiveinformation. A battery may provide electrical power to device 200.

End device 116 may able to communicate with gateway 111 over ageneral-purpose, local wireless data interface using a transceiver.Examples of general-purpose wireless data interfaces include interfacessuch as are described by Institute of Electrical and ElectronicsEngineers standard 802.11 (IEEE 802.11). A Wi-Fi interface of gateway111 and a transceiver of device 116 may be configured for communicationover IEEE 802.11 protocols. In other embodiments, the end device may bea laptop computer 115, a tablet computer, or other device having Wi-Fi(or other general-purpose wireless interface) capability.

This disclosure contemplates, among other things, a mobilevirtualization platform (MVP) in a mobile device 116 to allow the deviceto concurrently execute multiple virtual machines. The MVP may allow themobile device to act independently in different base bands (e.g., GSM,Wi-Fi, WiMax, 4G LTE, etc.) and/or to concurrently maintain multipleservices. In some embodiments, the MVP may be embedded in an end userdevice (e.g., mobile smartphone) or may comprise part of the firmwareloaded on the device. For example, the MVP may be provided as part ofthe operating system of the end user device. In another example, the MVPmay implement a thin layer of software that is embedded on the mobiledevice to decouple applications and data from the underlying hardware.This enables the mobile device to run, if desired, multiple operatingsystems concurrently on one device. In addition, in some embodiments theMVP may enable applications to run concurrently per each base band.

In addition, a wireless mobile device may use multiple virtual machinesto depict multiple personas, as described below. Such operation mayreduce cost (for a network operator and/or a user), improve indoorcoverage (e.g., by using Wi-Fi instead of 3G when inside a home with alocal wireless network), increase data access speeds, and otherbenefits. For example, using a MVP, a virtual machine may be configuredfor each baseband of the mobile device. Applications may be executedusing each virtual machine (VM) and enable an effective utilization ofresources. For example, personas (e.g., profiles) may be created foreach base band, such as GSM persona, 4G persona, LTE persona, WiMaxpersona, Wi-Fi persona, etc., and execution/delivery of applications andinteractive content may be within the context of these personas. In someembodiments it may be possible to transition the application statusbetween the VMs or personas and create a seamless transition (or“handoff”) between applications such that a user of the mobile device isnot interrupted by the change in baseband.

In accordance with various aspects of the disclosure, a mobile devicemay support a mobile virtualization platform (MVP) layer embedded on thehardware layer of the mobile device. One or more applications mayexecute on the mobile device by interfacing through the MVP. Theseapplications may communicate with each other via a communicationinterface such as hypertext transport protocol (HTTP), simple objectaccess protocol (SOAP) messages using extensible markup language (XML),or any other protocols capable of use for inter-process communicationbetween virtual machines. Data used in an application running on onevirtual machine may be used in other virtual machines with a seamlesshandoff between the virtual machines.

Virtual machine and virtual platform as used throughout this disclosureincludes aspects of virtual machines as understood by one of ordinaryskill in the art, but is also meant to encompass embodiments where anadditional layer of software operates between the hardware layer andsoftware application layer. In some examples, this layer of software mayreceive and execute compiled source code, and is not limited to onlyreceiving bytecode. One example of a commonplace virtual machine is theJava™ virtual machine. Other virtual machines and vendors of virtualmachines are known and may be used in accordance with various aspects ofthe disclosure.

In another aspect, this disclosure also contemplates a virtualizationplatform that may run dedicated and/or distinct VMs on a service entrydevice (e.g., residential/commercial wireless gateway device 111). Thisvirtualization platform layer is similar to the MVP described herein andfor purposes of this disclosure is also referenced as “MVP,” althoughreaders will appreciate that a service entry device might notnecessarily be an end-user mobile device, such as a mobile phone. Eachapplication (or a category of applications) may be created and executedin a single VM context. The communication between applications may betreated as inter-VM communication or could be handled by a container VMor MVP. For example, a communication interface such as HTTP or SOAP/XMLmessages may be used. The aforementioned system of multiple VMs embeddedon a service entry device may enable downloading and maintaining ofdistinct applications per VM module on a single hardware device. Thedata used in a service running on one VM may be used in other VMs with aseamless handoff between the virtual machines.

In addition the aforementioned embodiment may provide ease ofdevelopment, testing, and deployment of updates to applications by, forexample, launching new VMs or launching updated application versionswithin an already running VM context. As a result, in one example, thismay facilitate a service entry device (e.g., residential wirelessgateway) to run a plurality of applications independently withoutrequiring a reinstall of driver data, configuration data, etc. and mayrecertify the already tested applications whenever updated applicationversions are released. Various aspects of the disclosure may enablecontrolling, monitoring, and/or maintaining of different applicationsvia virtual machine modules from the network cloud (e.g., remote system103). Thus, the modules may provide a mechanism through which todownload applications to VM modules on the service entry device via afirmware/software update without disturbing other applications,connected device drivers, and/or other VMs running on the same hardwareplatform. This may also enable support for network expansion moduleswithout requiring changes to the existing service entry device.

In some embodiments, a gateway 111 (or another device such as aninterface device) may support a virtualization platform layer embeddedon its hardware layer. The gateway 111 and may include a set of designconsiderations for executing multiple applications in different virtualmachine context in, for example, an embedded system on a hardwareplatform. At least one benefit of such a configuration is that change toany one application does not require re-certification of the wholemodule, thus saving time and effort. Each application executed on thegateway 111 may accept individual settings, certifications, code,implementation specifics and related data. Each application module maybe implemented as a unique monolithic code block, such as avoice-over-IP (VoIP) module, advanced services module, Wi-Fi module,router module, residential gateway applications module, etc. based onthe functionality of the application. For example, each module may runin a VM context and multiple VMs may be running concurrently on thehardware platform. When a new application is executed, the correspondingVM may initiate the application enabling speedy deployment with reducedcomplexities. Thus, each VM may be able to act independent of each otherthus reducing dependency on other applications. As a result, gatewaydevices and the network may have greater capabilities and provide morefeature rich application services with multiple applications co-residingon a single gateway.

One or more services may execute on the gateway by interfacing throughthe MVP. Similar to the embodiment described herein involving a mobiledevice, these services may communicate with each other via acommunication interface such as HTTP, SOAP/XML messages, or any otherprotocols capable of use with inter-process communication betweenvirtual machines. As such, the data used in a service running on onevirtual machine may be used in other virtual machines with a seamlesshandoff between the virtual machines. Some examples of types of servicescorresponding to virtual machines in a MVP in a gateway 111 include, butare not limited to home gateway services, Wi-Fi services, EMTA services,and advanced services. While the example above refers to a gatewaydevice 111, the disclosure is applicable to any service entry devicewhich can run multiple applications concurrently.

In one embodiment in accordance with various aspects of the disclosure,a MVP in an end device 116 may implement one or more virtual machines(VMs) per baseband network (e.g., GSM, Wi-Fi, WiMax, EDGE, 3G, 4G,Bluetooth™, etc.) Applications may run in the VM context and utilize theresources available in that base band. At least some advantages of usinga Wi-Fi network over a 3G network when in the vicinity of a WLAN are atleast as follows: the cost of VoIP call may be less as compared to GSM;network congestion seen in peak hours could be avoided; GSM/CDMA/3Gcoverage would keep the user connected all the time when away from urbanareas or Wi-Fi Hot Spots; the VoIP call control would have similarfeatures of call connection, call waiting, call forward, call barring,caller ID, Prefix dialing, etc.; additional features of VCC (Voice CallContinuity) settings such as Wi-Fi Range Band, Preferred Call Connection(GSM or VoIP), etc.; and data access speeds are much faster using WLAN,with decreased cost as well. Moreover, other networks and network typesmay correspond to the one or more VMs. For example, a short-rangewireless network, such as Bluetooth™, may include other wirelessnetworks with a range of less than approximately 800 meters. Meanwhile,cellular networks may include, but are not limited to, GSM, EDGE, CDMA,and other wireless network standards for mobile device communication.

FIG. 3 shows an illustrative MVP architecture 300 corresponding to anembodiment with a VM per base band in a mobile platform architecture.For example, there may be one or more applications running in a Wi-Fi VMcontext 306 and another set of applications running in a GSM VM context308. Communication between the two VM contexts may assist incoordinating the enabling and disabling of applications in particularcontexts. Some exemplary applications on the GSM VM context 308 include,but are not limited to, downloading headers, playing content, using3G/GSM for voice calls, and using mobile network for data communication.Some exemplary applications on the Wi-Fi context 306 include, but arenot limited to, downloading content, using Wi-Fi for voice-over-IP(VoIP) calls, and Wi-Fi backhaul connections.

In one example, assuming the cost of using a GSM backhaul 302 is higherthan Wi-Fi, an automatic seamless handoff may be performed when a Wi-Finetwork 304 is within the range for initiating a voice call. Similarly,when a end user device is on a GSM call and comes in the vicinity of aWi-Fi network, the device may connect to the Wi-Fi access point and makea seamless switch from GSM to VoIP (via Wi-Fi) without any userintervention. In fact, the user operating the end device may be unawarethat a network switch has occurred. In other embodiments, the user mayreceive a passive notification (e.g., a textbox may appear on thedevice's display for a couple seconds indicating the switchover and thenautomatically disappear.)

Applications running on an end device (e.g., a user's mobile phone) incertain base bands may use considerably less resources than others. Forexample, when the end device is outside Wi-Fi premises, it may use amobile 3G network to transmit and receive voice data (e.g., for a voicecall.) In such instances, applications, in some embodiments, maydownload just headers (or other similar type of metadata-likeinformation) and delay large content downloads for a later time.Similarly, multimedia streaming may only playback pre-downloadedaudio/video content so as to minimize bandwidth use. For example, anycontent previously downloaded in the Wi-Fi VM context may be madeavailable to watch while operating in GSM VM context. Meanwhile, whenthe end device 116 moves into the range of a Wi-Fi network, it may beginone or more steps to handoff from the GSM VM to the Wi-Fi VM and itsnetwork. The end device may update all previously downloaded headerswith the complete content via the Wi-Fi network. Furthermore, anyrequested multimedia downloads may begin using the greater bandwidthavailable through the Wi-Fi network to complete the transaction. Themultimedia download may begin automatically or may be manuallytriggered. In some embodiments, settings (e.g., subscriber-specific usersettings) may be desired and active to limit VoIP calls to when a Wi-Finetwork is available (i.e., when the Wi-Fi VM context is available) andnot when executing using a GSM VM context.

For example, in an embodiment dealing with a voice call being completelyhanded off between two base bands, the handoff may be achieved through aseries of steps. A mobile device (e.g., end user local wireless device116) may be running a voice application on the VM 308 corresponding tothe GSM base band. Moreover, while the mobile device is on a voice call,it may also be downloading the headers of e-mails over the GSM network302.

In one example, a wireless device 116 may comprise a wireless receiver(e.g., GSM receiver) configured to receive over a wireless protocol(e.g., GSM protocol), and may also comprise another wireless receiver(e.g., Wi-Fi receiver) configured to receive over another wirelessprotocol (e.g., Wi-Fi protocol). In use, referring to the example methodshown in FIG. 6 , the wireless device 116 may receive (see step 602)voice data (e.g., data packets with sound bytes) from over a GSM networkand to the GSM receiver. The voice data may be formatted (e.g., in aGSM-compliant protocol) to be transmitted over the GSM network.

In step 604, the voice data may be inputted for playback into the voiceapplication running on the VM 308 corresponding to the GSM base band.The voice application may be configured to play the voice data on theuser device 116 using a speaker or other output device of the userdevice 116. Examples of voice applications may include, but are notlimited to, a media player such as an mp3 player, CD player, and otheraudio/video players. Likewise, voice data includes, but is not limitedto, songs, mp3s, and other audio/video data.

The voice data (or other data) may be sent to the wireless device 116from a remote computing device 103. The remote computing device may, insome embodiments, be controlled and/or operated by a network operator(e.g., a telecommunications company). The remote computing device 103may comprise one or more servers that transmit the voice data and otherdata (e.g., data resulting from services) to remote devices (e.g.,smartphones 116, gateways 111, etc.) The remote computing device may, insome embodiments, transmit new applications (or application updates) tothe remote devices for installation and/or execution. For example, anupdated version of a voice application may be downloaded and installedfor execution on the VM corresponding to the GSM base band.

Meanwhile, the mobile device may come upon a Wi-Fi hotspot. The networkmodule in the mobile device may detect (in step 606) the presence of theWi-Fi hotspot and determine that the device is within the range of theWi-Fi access point. The mobile device may connect (see step 608) theWi-Fi VM 306 of its mobile virtualization platform to the Wi-Fi network304 and execute its application context.

The GSM VM may transfer the voice call from the GSM VM into a VoIP call(or other type of IP-based call) on the Wi-Fi VM 306 with a seamlesstransition (see step 610) ensuring full connectivity over Wi-Fi. Theremote computing device 103 may receive notification (e.g., a command)indicating that a user of the device 116 is in a Wi-Fi coverage area.The remote computing device 103 may seamlessly switch transmission ofthe content (i.e., voice data) from over the GSM network 302 to over theWi-Fi network 304. Meanwhile, at the local device 116, through inter-VMcommunication, the session and other information for the voiceapplication executing on the GSM VM are transitioned (in step 610) tothe Wi-Fi VM. To the remote computing device and other devices, the VMtransition is seamless because of the abstraction layer created by theMVP.

As a result, in step 612, the Wi-Fi VM may receive the voice data sentfrom the remote computing device 103 to a user premise residentialdevice (e.g., gateway 111). The voice data may be formatted inaccordance with communication over the Wi-Fi network. For example, overthe Wi-Fi network 304, the voice communication may be VoIP and thusformatted accordingly. When the voice data is received at the Wi-Fi WM,it may be executed (in step 614) by a different voice application (e.g.,customized for the greater bandwidth allowed by Wi-Fi communication,such as including higher quality audio or video in addition to audio)executing on the Wi-Fi VM. The transition from the first voiceapplication (e.g., GSM baseband VM voice application) to the secondvoice application (e.g., Wi-Fi baseband VM voice application) may beseamless such that the playback of the voice data is uninterrupted. Forexample, a user of a mobile device might not experience noise (or otherincomprehensible sound byte) when the seamless transition occurs. Thesteps shown in FIG. 6 may be performed in other than the recited order,and that one or more steps illustrated may be optional in accordancewith one or more aspects of the disclosure.

In addition, the MVP may detect any headers (e.g., e-mail headers) thatmay have been downloaded through the GSM network 302 and attempt,through the Wi-Fi VM 306 and Wi-Fi network 304, to complete the download(e.g., attachments, large message bodies, etc.) corresponding to theheaders. The downloaded information may be stored or cached in themobile device 116 and made available for later use in the GSM VMcontext. Moreover, the Wi-Fi VM 306 may also download multimedia (e.g.,music, video, etc.) over the Wi-Fi network 304 and store it for lateruse. Once the mobile device 116 moves outside of the Wi-Fi networkrange, the VoIP call may be transitioned to the GSM network 302 byswitching to the GSM VM 308. In the GSM VM context, the mobile device116 may access the downloaded e-mail information and any downloadedmultimedia, and display the information on the device.

While the foregoing example describes the operation of the VMs in amutually exclusive fashion, in some embodiments both VMs and bothnetworks (i.e., GSM and Wi-Fi) may be concurrently available and used.For example, the Wi-Fi VM 306 may download content (e.g., e-mailcontent, multimedia content, etc.) over a Wi-Fi network 304 whileanother VM may consume the downloaded content. In another example, adata connection may exist on one network while a voice (e.g., VoIP)connection exists on another. It may be desired in some embodimentswhere both networks and both VMs coexist that the session handoff may behandled in such a way that multiple toggles between the networks may beavoided. For example, a threshold value may be used to prevent switchingto another network until that network has been accessible (e.g., with atleast a predetermined minimum connectivity signal strength, with anyaccessibility, etc.) for at least a minimum amount of times (e.g., 30seconds, 2 minutes, etc.)

In accordance with aspects of the disclosure, authentication and/orsession management may be available at a gateway level (e.g., userpremises equipment and/or at the end-user device level.) For example,once a Wi-Fi client (e.g., device 115) is authenticated with a wirelessgateway 111, the device 115 may be authorized to access Wi-Fi servicesby establishing a session with the upstream network. The session may bemaintained locally at the gateway level such that the gateway 111 mayproxy some or all of the traffic to the upstream network 109 and viceversa. As such, a session may be maintained for a Wi-Fi client such thatit may retain session data with the gateway 111 so that it can switchbetween gateways without losing session. For examples, periodicre-authentication and seamless transition of session may be enabled toallow nomadic operation. In addition, the device may be authenticatedwith a cellular network when it is no longer in proximity to a gateway.When switching between VM contexts configured in a MVP, the session dataand/or parameters may be handled such that any transition is seamless.

In yet another example 500, an authorized service domain (e.g., such asthose illustrated as “Advanced Services VM” and “EMTA VM” in FIG. 5 )may be used so that applications, such as voice over IP (VoIP) code andadvanced services serviced by the service/content provider may beexecuted by connecting to a network cloud 109 and run in the context ofan authorized service domain to protect the content and copyrights.Users may be allowed to download multimedia content, stream data, accessnetwork specific features, etc. As multiple applications are executed ona single hardware platform, prevention of unauthorized data transferbecomes more complex to implement. In another example, an unauthorizedservice domain (e.g., such as those illustrated as “Home Gateway VM” and“Wi-Fi VM” in FIG. 5 ) may be used for other applications.

Authentication and authorization may be useful in regulating/controllingthe access of the mobile user 116 to a wireless hotspot/gateway 111, tosupport some desired security considerations for using the services,and/or to guarantee minimum service level parameters and billing to theappropriate party. VMs may allow specific security features to beimplemented on corresponding VMs, thus allowing only authorized datatransfer and access. Wi-Fi clients may be authenticated by a variety ofauthentication mechanisms such as username/password, TN/PIN, personalcredentials, third party provided credentials to support subscribers,and other mechanisms that enable security. The authorization to accessthe hotspot and service could be based on some business rules (e.g.,authorize the device for all future access, one time access,authenticate via the backend for supporting seamless transition acrosshotspots, automatic or manual authentication, etc.) Some or all of theabove authentication mechanisms may be for connection of public users tothe Wi-Fi network. Since in some examples the VM may connect withoutuser intervention, it may be desirable to not require manualauthentication. The MVP and the VM context, as such, may maintain thesession data providing authentication between VMs.

In addition to the content protection aspects describe herein, the VMsrunning in authorized service domains may be enabled to allow commandsand/or control from a network cloud. Such an approach may allow a userpremise gateway device 111 to receive commands from the cloud (e.g.,remote computing device 103 in network cloud) and control one or more ofend devices 113, 116. For example, a media player in the home networkmay be connected to a residential gateway 111. The VM in the accessnetwork device (ASD) may allow streaming of copyright-approved (e.g.,only those songs that a profile associated with the ASD indicates havecopyright permission for playback) media from the cloud to the device,but through security features, other services/content may be blocked. Inanother example, a gateway device (e.g., set-top box) at a user's homemay request media streamed from the cloud from an internet protocol (IP)content source (e.g., a website that provides video clips). In thosecases where a device that is not in the access network (i.e., non-ASD)desires services from the cloud, the VM from the non-ASD may communicatewith devices and/or services that are available for non-ASD devices. Inyet another example, devices 116, 113 may be registered for a servicefor a specific user account. As such, it may be possible to allowcommunication and service rendering between ASD and registered non-ASDdevices alike.

In accordance with various aspects of the disclosure, a remote computingdevice 103 may store profiles (e.g., user profiles) for each user/userdevice and use these profiles for authentication and/or sessionmanagement. Authentication credentials may be used to regulate access toVMs and to monitor/control the devices and applications. Access to theVMs also may be controlled based on the profile. For example, a profilemay be used in initiating applications and/or driver download/updatesfrom the network cloud to the VM in user premise equipment (e.g.,gateway 111) or to end user devices 112-117.

A user may initially register with a remote content provider system 103.This registration may be initiated in various manners. If an applicationor content is downloaded to an end device 116 from gateway 111 after theend device enters the gateway service domain, an installation routinecould be configured to automatically begin a registration process onceapplication installation is completed. If the application was previouslyinstalled on an end device prior to that end device entering the gatewayservice domain, registration might begin when a user activates theapplication and/or when the end device automatically activates theapplication. As part of registration, authentication of the end device116 and/or of a user associated with device 116 may be desired. Suchauthorization can be performed using one or more of the methodsdescribed above, or other known methods of authentication.Authentication could alternatively or additionally include, e.g., use ofa mobile telephone number associated with an end device.

In some embodiments, no additional billing procedures may be needed forcommunication sessions involving devices (such as smartphone 116) thatmight be temporarily associated with a particular local network gateway111. In other embodiments (e.g., where a local network gateway isoperated by, e.g., a commercial establishment), it may be desirable toprovide separate billing for sessions involving such temporarilyassociated devices. As one example, an operator of network 109 or oflocal network gateway 111 might require that a user of device 116 agreeto pay for data usage through local network gateway 111 and to provide acredit card number or make other arrangements to facilitate suchbilling. When the user of device 116 establishes a communication sessionthrough gateway 111, a billing record may be generated and transmittedto a billing server at system 103. A variety of billing methods may besupported to adhere to desired business rules, such as transaction basedbilling, one time access, unlimited access, billing for third partysubscriber access, etc. In one example, based on the type of eachnetwork connected and/or used, the billing records may be updatedaccordingly. For example, each VM corresponding to a baseband maymaintain a record of transactions, and this information may sent to theupstream network (e.g., billing server at system 103) for computation ofa final billing amount and summary.

In some embodiments, a user may login from multiple end devices andupdate, either concurrently or sequentially, their user profile fromthose devices. The latest update on the profile may then be updated byan account management system and/or synchronized across the end devices.For updating the profile, in some examples, the remote computing system103 in the network cloud may auto-detect the end device 116 based onuser credentials and provide a user interface for profile updates. Theuser profile stored by an account management system may be deviceagnostic and maintained at the upstream network and/or may be derivedfrom multiple devices to deliver multiple services (e.g., the user mayuse a network based profile and access the identities and content fromany device for any service). For example, a user profile may purchase asoftware application, and indication of the software applicationpurchase may be recorded on the user's profile. That application may bedownloaded to a mobile device 116 and executed by an appropriate virtualmachine on the device. Meanwhile, that software application may also bedownloaded and executed on a virtual machine on the user's television112. A network operator of system 103 may authenticate a user device,identify a user profile corresponding to the device, and permit accessto authorized software application purchases. In one example, a songpurchased on using a mobile device 116 may be registered to the user'sprofile. Subsequently, the song may be authorized, through verificationagainst the user profile, for playback using an appropriate softwareapplication (e.g., a media player) running on a virtual machine on auser's television 112. In that example media content (e.g., music,songs, video, eBooks, etc.) may be recorded on a user's profile to allowdevice agnostic access to the media content.

In accordance with various aspects of the disclosure, user premiseequipment (e.g., wireless gateway 111) may include content aggregationfeatures to allow sharing of digital contents, such as photos, music,videos, eBooks, etc., though consumer electronics 112, personalcomputers 114, mobile devices 116, etc. inside and beyond the home. Homenetwork device interoperability may integrate personal computers (PC),consumer communication electronics (CE) and mobile devices with theInternet, broadcast, and/or mobile networks to provide an environmentwhere consumers may connect and enjoy various types of media on theirproducts. Such a system creates an interoperable network where end userdevices communicating with each other using a single network may sendand receive data as they require. The content aggregation applicationservices may be controlled by (e.g., interact with) various virtualmachines so that desired content protection mechanisms may beimplemented, and only those devices in the authorized service domain orhome network are accessible and indexed. One skilled in the art willappreciate after review of the entirety disclosed herein that while someexamples describe communication between VMs in the same device, thesystem contemplated by this disclosure also includes transfer between aVM in a device to a VM in another device. For example, a user may beplaying a game (e.g., computer game program) on her smartphone whilecommuting home, but once inside her home, she may wish to continueplaying the game on her game station (or other electronic device)connected to a television 112. As such, the application may bedownloaded (or pre-downloaded) to the electronic device (e.g., gamestation) in the home and executed to transfer gameplay from thesmartphone to the electronic device in accordance with the variousaspects described herein. An MVP enables the gameplay to transition froman application executing on the virtual machine on the smartphone to anapplication executing on another virtual machine in the game station inthe home.

For example, in one embodiment, a mobile device 116 with a mobilevirtualization platform (MVP) may include two VMs. The MVP may beconfigured to synchronize the local storage data of a user from one VMcontext to another VM context. This includes, but is not limited to,bookmarks, preferences, media content, and other data. In addition todata, in some embodiments, applications may also be synchronized betweenVMs. For example, an application (e.g., an address book application) maybe downloaded/installed in one VM context and could then be used inanother VM context. In addition, in some embodiments, data may belocally cached (e.g., on tangible memory of a mobile device) and usedbetween VM contexts. For example, emails may be downloaded while in aWi-Fi VM context, but may be cached and accessible when a mobile deviceis on-the-go and operating on a cellular (e.g., GSM, 3G, etc.) VMcontext. Such a seamless transition (e.g., sharing) may occur withoutrequiring re-initiation of the download from the other VM context.

In the example illustrated in FIG. 4 , two VMs in a MVP 400 of a mobiledevice 116 are shown. The VMs of the GSM network 302 and the Wi-Finetwork 304 are part of a virtualization platform (i.e., MVP). This MVPmay be responsible for the synchronization of an address bookapplication and associated content. For example, a smartphone 116 maycomprise a local address book application and some content stored in thesmartphone's memory. Meanwhile, an application server 107 may alsoremotely maintain some address book contact data. The application server107 may also store instructions executable by one or more processors inthe server to carry out operations such as are described herein.

While running an address book application in a cellular VM context(e.g., GSM VM context 408), the VM may rely primarily on address bookcontent (e.g., phone number, contact name, street address, e-mailaddress, notes, etc.) stored locally on the smartphone 116. For example,in this context, the application may display the complete contact listwith just names. The application may communicate over the network 302 toretrieve contact information that is not locally stored (e.g., onapplication server 107). The application, being run in a GSM VM context408, may retrieve this additional information only as desired by theuser (e.g., by a manual request from the user) or as requested bysoftware processes executing on the smartphone (e.g., anotherapplication that requires the particular contact information details fora contact whose detailed information is not locally stored on thephone.) As such, in the GSM VM context 408, the usage of the network isminimized.

Meanwhile, in a higher-bandwidth environment (e.g., Wi-Fi VM context406), the complete contact details from a network address book (e.g., anaddress book stored at remote computing device 103) may be downloaded tothe user device 116. For example, when a mobile device moves from a GSMnetwork 302 to a Wi-Fi network 304, the system 400 automatically maydownload the network contact details from the Internet into the localphonebook. The MVP 400 may be responsible for synchronizing the localaddress book such that if the device 116 transitions back to the GSM VMcontext 408, then the particular VM is synchronized with the Wi-Fi VMand the downloaded content is available in the new context. As a result,network usage on the GSM network 302 is reduced because largedata/content/application downloads may be deferred to times when theWi-Fi VM context 406 is executing the address book application.

As used in the example of FIG. 4 , a “contact” may refer to a specificperson, business or other entity with which a user or some service mightwish to communicate. Contact data may include information identifyingthe contact such as a name (e.g., a person's or business's name), astreet or other physical address, etc. Contact data may also includeinformation needed to establish communication with the contact. Examplesof this information include one or more TNs, an email address, an IMaddress, a gaming handle, etc. One or more fields of a data recordholding contact data may hold information indicating a particular “buddylist” identifier or other user identifier for a contact.

Although the example of FIG. 4 discusses downloading address bookcontent from a network cloud (e.g., remote computing system 103) to alocal mobile device 116, the system contemplated by the disclosure isoperable to upload contact information from the mobile device to thenetwork cloud, as well as other address book operations. In addition,the applications may download and/or upload other types of content. Forexample, e-mail headers and/or contents/attachments of e-mails may bedownloaded based on the VM context in which VM context the applicationis executing.

In one embodiment in accordance with aspects of the disclosure, it maybe desirable for applications executed on a MVP to undergo regressiontesting and certification to ensure compatibility with differenthardware and application functionality. With each application tested ina VM context, that application may be independently deployed using someor all gateway resources to provide high efficacy and with less turnaround time.

A residential gateway 111 may support a MVP that multipleapplication-specific or service-specific modules that allow a myriad ofapplications to concurrently access the gateway 111. The MVP mayprioritize application requests and downloads/uploads to spool resourcesappropriately. Thus when two applications executing on devices (e.g.,smartphone 116 and laptop 115) communicating with a gateway 111 requestfirmware upgrade from the upstream cloud nearly simultaneously, or twoapplications request content download from a Wi-Fi network concurrently,a VM priority may be used to allow seamless process continuity. Forexample, requests related to a voice call may be assigned a higherpriority than data requests for content that is not occurring live(e.g., a pre-stored video on the Internet.)

In one example in accordance with aspects of the disclosure, expansionmodules for providing additional features may be implemented by addingVMs to an existing gateway 111. For example, the expansionmodule/component may be implemented through additional hardware boardsor USB-based expansion modules added to a gateway 111. New features maybe added to the modified gateway by sending a VM with a predeterminedconfiguration. The VM may execute applications or program instructionsthat take advantage of the new features available to the gateway 111.For example, this may allow new features and services to the market suchas home monitoring and control, high-definition radio, etc.

In some embodiments, a mobile device (e.g., laptop 115) may be equippedwith an automatic locator (e.g., GPS receiver) that updates the locationof the device when nomadic. Periodic network tracking may be enabled todiscover the presence of a wireless LAN (e.g., a Wi-Fi network) when inits vicinity. When a GSM/CDMA/3G mobile device 116 connects to a publicWi-Fi network, its location may be updated in the location database sothat the user can be correctly located for emergency services such asE911. The VM of the cellular baseband may share the location detailswith the Wi-Fi VM.

In some embodiments in accordance with aspects of the disclosure, agateway 111 may manage/handle device driver and firmware upgrades. Inalternate embodiments, a remote content provider system 103 may maintaindrivers and firmware/software upgrades/patches at a network cloud andmay initiate downloading of drivers/etc. to the downstream MVP directly.In one example, the downstream MVP may be a virtualization platforminstalled on a gateway 111 or other user premise equipment. In anotherexample, the downstream MVP may be a virtualization platform installedon user devices (e.g., smartphone 116, laptop 115, television 112, etc.)The remote content provider system 103 may communicate with the MVP of aremote device and download/update as desired. As such, a networkoperator may, through the remote content provider system 103, offerend-to-end services for new and existing features. In addition, in someexamples, the downloading/updating may be automatically scheduled forparticular maintenance windows (e.g., during odd hours when usage islower) or may be initiated by an authorized profile from the home (e.g.,through a graphical user interface on a television 112, or otherinterface). At least one benefit of such a system is a reduced storageof large data and firmware information in the gateway 111 related toeach application, thus allowing the VM of a mobile device to act as anindependent component. The gateway 111 may continue to be used forstoring application settings and/or for communication with the upstreamnetwork (e.g., system 103).

Numerous benefits may be experienced by a system implementing one ormore aspects of the MVP disclosed herein. For example, a MVP that usesone or more virtual machines for each available baseband may allow forsegregation of applications and fine tuning of the applications based onnetwork capabilities (e.g., a Wi-Fi network may allow greater bandwidthusage than a 3G network). Another benefit, in some embodiments, may befound in that application development and launching may be doneirrespective of hardware specification/modification and/or operatingsystems because of the MVP. For example, multiple virtual machines mayenable the deploying of each application independently withoutre-certification of monolithic code and dynamic update of software, thussaving time and effort in testing and certification. In addition, insome examples the MVP may allow for a profile-based management formonitoring and controlling devices (e.g., mobile device 116, gateway111, etc.) Furthermore, support for network expansion modules may beimproved because of the ability, in some embodiments, to deliver supportwithout changing gateway code allowing a service provider to launch newapplication. All embodiments need not necessarily achieve all objects oradvantages identified above. It will also be appreciated and understoodthat modifications may be made without departing from the true spiritand scope of the present disclosure. Any and all permutations of variousfeatures described herein are within the scope of the disclosure. Thedescription is thus to be regarded as illustrative instead ofrestrictive on the present disclosure.

Aspects of the disclosure have been described in terms of illustrativeembodiments thereof. While illustrative systems and methods as describedherein embodying various aspects of the present disclosure are shown, itwill be understood by those skilled in the art, that the disclosure isnot limited to these embodiments. The foregoing description is notintended to be exhaustive or to limit embodiments to the precise formdisclosed, and modifications and variations are possible in light of theabove teachings or may be acquired from practice of various embodiments.For example, each of the features of the aforementioned illustrativeexamples may be utilized alone or in combination or subcombination withelements of the other examples. For example, any of the above describedsystems and methods or parts thereof may be combined with the othermethods and systems or parts thereof described above. For example, oneof ordinary skill in the art will appreciate that the steps shown in theillustrative figures may be performed in other than the recited order,and that one or more steps illustrated may be optional in accordancewith aspects of the disclosure.

1. A method comprising: receiving, by a first application configured tocommunicate via a first virtualization component of a device and via afirst network, an indication of a request for first data; downloading,based on the indication, via the first virtualization component and viathe first network, the first data; determining that a second network isaccessible; downloading, based on determining that the second network isaccessible, via a second virtualization component of the device and viathe second network, second data; and sending, from the secondvirtualization component to the first virtualization component,information associated with the second data.
 2. The method of claim 1,further comprising: processing, by a second application configured tocommunicate via the second virtualization component and via the secondnetwork, the first data and the second data.
 3. The method of claim 1,further comprising: processing, by the first application and based onthe sending the information associated with the second data, the firstdata and the second data.
 4. The method of claim 1, further comprising:accessing, by the first application and based on the sending theinformation associated with the second data, the first data and thesecond data.
 5. The method of claim 1, further comprising: modifying,based on the second data, a prior output of a user interface of thedevice, wherein the prior output is based on the first data.
 6. Themethod of claim 1, wherein receiving the indication comprises receiving,via a user interface of the device, the indication.
 7. The method ofclaim 1, further comprising: generating, by a second application, theindication.
 8. The method of claim 1, further comprising: determining,by a second application, that the second data is not stored on thedevice; and generating, by the second application, the indication. 9.The method of claim 1, wherein the downloading the second data isfurther based on at least one of: a determination that data access speedvia the second network is greater than data access speed via the firstnetwork; a determination that cost per unit sent via the second networkis less than cost per unit sent via the first network; or adetermination that the second network comprises a non-cellular wirelessnetwork and the first network comprises a cellular network.
 10. Themethod of claim 1, further comprising: receiving, by the firstapplication, an additional indication of a request for additional data;determining that the second network is inaccessible; based on receivingthe additional indication, determining, after determining that thesecond network is inaccessible, that the second network is accessible;and downloading, based on determining that the second network isaccessible after determining that the second network is inaccessible andvia the second network, the additional data.
 11. The method of claim 1,further comprising: receiving, by the first application, an additionalindication of a request to upload additional data; determining that thesecond network is inaccessible; based on receiving the additionalindication, determining, after determining that the second network isinaccessible, that the second network is accessible; and uploading,based on determining that the second network is accessible afterdetermining that the second network is inaccessible and via the secondnetwork, the additional data.
 12. The method of claim 1, wherein thefirst data comprises a first portion of an electronic address book andthe second data comprises a second portion of the electronic addressbook.
 13. The method of claim 1, wherein the first virtualizationcomponent comprises a first virtual machine and the secondvirtualization component comprises a second virtual machine.
 14. Themethod of claim 1, wherein the first virtualization component comprisesa first container and the second virtualization component comprises asecond container.
 15. The method of claim 1, wherein the devicecomprises a wireless device, the first network comprises a firstwireless network, and the second network comprises a second wirelessnetwork.
 16. The method of claim 1, wherein the device comprises awireless device, the first network comprises a cellular wirelessnetwork, and the second network comprises a non-cellular wirelessnetwork.
 17. An apparatus comprising: one or more processors; and memorystoring instructions that, when executed by the one or more processors,cause the apparatus to: receive, by a first application configured tocommunicate via a first virtualization component and via a firstnetwork, an indication of a request for first data; download, based onthe indication, via the first virtualization component and via the firstnetwork, the first data; determine that a second network is accessible;download, based on determining that the second network is accessible,via a second virtualization component and via the second network, seconddata; and send, from the second virtualization component to the firstvirtualization component, information associated with the second data.18. The apparatus of claim 17, wherein the instructions, when executedby the one or more processors, cause the apparatus to: process, by asecond application configured to communicate via the secondvirtualization component and via the second network, the first data andthe second data.
 19. The apparatus of claim 17, wherein theinstructions, when executed by the one or more processors, cause theapparatus to: process, by the first application and based on the sendingthe information associated with the second data, the first data and thesecond data.
 20. The apparatus of claim 17, wherein the instructions,when executed by the one or more processors, cause the apparatus to:access, by the first application and based on the sending theinformation associated with the second data, the first data and thesecond data.
 21. The apparatus of claim 17, wherein the instructions,when executed by the one or more processors, cause the apparatus to:modify, based on the second data, a prior output of a user interface ofthe apparatus, wherein the prior output is based on the first data. 22.The apparatus of claim 17, wherein the instructions, when executed bythe one or more processors, cause the apparatus to: receive, via a userinterface of the apparatus, the indication.
 23. The apparatus of claim17, wherein the instructions, when executed by the one or moreprocessors, cause the apparatus to: generate, by a second application,the indication.
 24. The apparatus of claim 17, wherein the instructions,when executed by the one or more processors, cause the apparatus to:determine, by a second application, that the second data is not storedon the apparatus; and generate, by the second application, theindication.
 25. The apparatus of claim 17, wherein the instructions,when executed by the one or more processors, cause the apparatus todownload the second data further based on at least one of: adetermination that data access speed via the second network is greaterthan data access speed via the first network; a determination that costper unit sent via the second network is less than cost per unit sent viathe first network; or a determination that the second network comprisesa non-cellular wireless network and the first network comprises acellular network.
 26. The apparatus of claim 17, wherein theinstructions, when executed by the one or more processors, cause theapparatus to: receive, by the first application, an additionalindication of a request for additional data; determine that the secondnetwork is inaccessible; based on receiving the additional indication,determine, after determining that the second network is inaccessible,that the second network is accessible; and download, based ondetermining that the second network is accessible after determining thatthe second network is inaccessible and via the second network, theadditional data.
 27. The apparatus of claim 17, wherein theinstructions, when executed by the one or more processors, cause theapparatus to: receive, by the first application, an additionalindication of a request to upload additional data; determine that thesecond network is inaccessible; based on receiving the additionalindication, determine, after determining that the second network isinaccessible, that the second network is accessible; and upload, basedon determining that the second network is accessible after determiningthat the second network is inaccessible and via the second network, theadditional data.
 28. The apparatus of claim 17, wherein the first datacomprises a first portion of an electronic address book and the seconddata comprises a second portion of the electronic address book.
 29. Theapparatus of claim 17, wherein the first virtualization componentcomprises a first virtual machine and the second virtualizationcomponent comprises a second virtual machine.
 30. The apparatus of claim17, wherein the first virtualization component comprises a firstcontainer and the second virtualization component comprises a secondcontainer.
 31. The apparatus of claim 17, wherein the apparatuscomprises a wireless device, the first network comprises a firstwireless network, and the second network comprises a second wirelessnetwork.
 32. The apparatus of claim 17, wherein the apparatus comprisesa wireless device, the first network comprises a cellular wirelessnetwork, and the second network comprises a non-cellular wirelessnetwork.
 33. A non-transitory computer-readable medium storinginstructions that, when executed, cause: receiving, by a firstapplication configured to communicate via a first virtualizationcomponent of a device and via a first network, an indication of arequest for first data; downloading, based on the indication, via thefirst virtualization component and via the first network, the firstdata; determining that a second network is accessible; downloading,based on determining that the second network is accessible, via a secondvirtualization component of the device and via the second network,second data; and sending, from the second virtualization component tothe first virtualization component, information associated with thesecond data.
 34. The non-transitory computer-readable medium of claim33, wherein the instructions, when executed, further cause: processing,by a second application configured to communicate via the secondvirtualization component and via the second network, the first data andthe second data.
 35. The non-transitory computer-readable medium ofclaim 33, wherein the instructions, when executed, further cause:processing, by the first application and based on the sending theinformation associated with the second data, the first data and thesecond data.
 36. The non-transitory computer-readable medium of claim33, wherein the instructions, when executed, further cause: accessing,by the first application and based on the sending the informationassociated with the second data, the first data and the second data. 37.The non-transitory computer-readable medium of claim 33, wherein theinstructions, when executed, further cause: modifying, based on thesecond data, a prior output of a user interface of the device, whereinthe prior output is based on the first data.
 38. The non-transitorycomputer-readable medium of claim 33, wherein the instructions, whenexecuted, further cause: receiving, via a user interface of the device,the indication.
 39. The non-transitory computer-readable medium of claim33, wherein the instructions, when executed, further cause: generating,by a second application, the indication.
 40. The non-transitorycomputer-readable medium of claim 33, wherein the instructions, whenexecuted, further cause: determining, by a second application, that thesecond data is not stored on the device; and generating, by the secondapplication, the indication.
 41. The non-transitory computer-readablemedium of claim 33, wherein the downloading the second data is furtherbased on at least one of: a determination that data access speed via thesecond network is greater than data access speed via the first network;a determination that cost per unit sent via the second network is lessthan cost per unit sent via the first network; or a determination thatthe second network comprises a non-cellular wireless network and thefirst network comprises a cellular network.
 42. The non-transitorycomputer-readable medium of claim 33, wherein the instructions, whenexecuted, further cause: receiving, by the first application, anadditional indication of a request for additional data; determining thatthe second network is inaccessible; based on receiving the additionalindication, determining, after determining that the second network isinaccessible, that the second network is accessible; and downloading,based on determining that the second network is accessible afterdetermining that the second network is inaccessible and via the secondnetwork, the additional data.
 43. The non-transitory computer-readablemedium of claim 33, wherein the instructions, when executed, furthercause: receiving, by the first application, an additional indication ofa request to upload additional data; determining that the second networkis inaccessible; based on receiving the additional indication,determining, after determining that the second network is inaccessible,that the second network is accessible; and uploading, based ondetermining that the second network is accessible after determining thatthe second network is inaccessible and via the second network, theadditional data.
 44. The non-transitory computer-readable medium ofclaim 33, wherein the first data comprises a first portion of anelectronic address book and the second data comprises a second portionof the electronic address book.
 45. The non-transitory computer-readablemedium of claim 33, wherein the first virtualization component comprisesa first virtual machine and the second virtualization componentcomprises a second virtual machine.
 46. The non-transitorycomputer-readable medium of claim 33, wherein the first virtualizationcomponent comprises a first container and the second virtualizationcomponent comprises a second container.
 47. The non-transitorycomputer-readable medium of claim 33, wherein the device comprises awireless device, the first network comprises a first wireless network,and the second network comprises a second wireless network.
 48. Thenon-transitory computer-readable medium of claim 33, wherein the devicecomprises a wireless device, the first network comprises a cellularwireless network, and the second network comprises a non-cellularwireless network.